print("集合##################################################start")
classmates = ["wx", "tyb", "cjf"]
print(len(classmates))
print(classmates[0])
print(classmates[1])
print(classmates[2])
# -1代表获取最后一个索引
print(classmates[-1])
# 元素插入到指定的位置
classmates.insert(1, "wxx")
print(classmates)
# 删除list末尾的元素
print(classmates.pop())
print(classmates)
# 元素插入到指定的位置
classmates.insert(-1, "wxx")
print(classmates)
# 要删除指定位置的元素
print(classmates.pop(0))
print(classmates)
# 元素插入到指定的位置
classmates.insert(0, "wxx")
print(classmates)
# 要把某个元素替换成别的元素
classmates[0] = "wx"
print(classmates)
# list里面的元素的数据类型也可以不同
classmates[0] = 1993
print(classmates)
# list元素也可以是另一个list
classmates.insert(4, [1, 2, 3, 4])
print(classmates)
print(len(classmates))
print("集合##################################################end\n")

print("不可变集合tuple##################################################start")
# 括号()既可以表示tuple，又可以表示数学公式中的小括号，
# 这就产生了歧义,如果只设置一个元素需要在这个元素后面新增','来消除歧义
classmates = (1,)
print(classmates)
# classmates[0] = 2
# 表面上看，tuple的元素确实变了，但其实变的不是tuple的元素，而是list的元素。
# tuple一开始指向的list并没有改成别的list，所以，tuple所谓的“不变”是说，tuple的每个元素，指向永远不变。
# 即指向'a'，就不能改成指向'b'，指向一个list，就不能改成指向其他对象，但指向的这个list本身是可变的！
t = ('a', 'b', ['A', 'B'])
t[2][0] = 'X'
t[2][1] = 'Y'
print(t)
print("不可变集合tuple##################################################end\n")